iT邦幫忙

2025 iThome 鐵人賽

DAY 28
0
Mobile Development

結合AI Agent技術打造自己的行程管家系列 第 28

Day 28 行程管家整合篇:前端溝通橋梁誕生,小助手開始對話!(前端1)

  • 分享至 

  • xImage
  •  

昨天,我們完成了行程管家小助手的 後端整合,讓系統能夠根據使用者輸入進行語意理解與回應。
今天,終於要開始最關鍵的一步 —— 整合前端互動介面,讓小助手能真正與使用者對話!

今日目標

  1. 建立地圖顯示邏輯 (MapsActivity)
  2. 建立調整聊天互動模型 (ChatRequest & Message)
  3. 為未來的地圖控制整合打好基礎

MapsActivity 是我們整合 Google Maps 的核心頁面。
它會根據從小助手傳遞過來的 Intent action 來決定要顯示「多個景點」或是「路線導航」。
mapsActivity.java

package com.example.ittext.ui;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;

import com.example.ittext.R;

import java.util.ArrayList;
import java.util.List;

public class MapsActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_maps);

        Intent intent = getIntent();
        String action = intent.getStringExtra("action");

        if ("show_locations".equals(action)) {
            ArrayList<String> places = intent.getStringArrayListExtra("places");
            showLocationsOnMap(places);
        } else if ("show_route".equals(action)) {
            String start = intent.getStringExtra("start");
            String end = intent.getStringExtra("end");
            ArrayList<String> waypoints = intent.getStringArrayListExtra("waypoints");
            showRouteOnMap(start, end, waypoints);
        }
    }

    private void showLocationsOnMap(List<String> places) {
        // 在地圖上顯示多個景點
    }

    private void showRouteOnMap(String start, String end, List<String> waypoints) {
        // 在地圖上顯示路線
    }
}

ChatRequest 類別是一個輕量但不可或缺的結構,
它負責包裝使用者輸入的文字訊息,
並以乾淨一致的格式送往後端模型,
成為小助手理解語意、生成回應的起點。
ChatRequest.java

package com.example.ittext.ui.chat;

public class ChatRequest {
    private String message;

    public ChatRequest(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

三、Message — 定義訊息內容與動作

Message 類別代表一條對話訊息,
除了文字內容(content)與發送者(isUser),
還新增了 動作類型 (MessageAction) 與 動作資料 (actionData),
為之後的「語音助理指令 → 地圖動作」做好準備。
Message.java

package com.example.ittext.ui.chat;

public class Message {
    private String content;
    private boolean isUser;
    private MessageAction action; // 新增動作類型
    private Object actionData; // 動作相關數據


    public Message(String content, boolean isUser, MessageAction action, Object actionData) {
        this.content = content;
        this.isUser = isUser;
        this.action = action;
        this.actionData = actionData;
    }

    // Getters and setters
    public MessageAction getAction() {
        return action;
    }

    public Object getActionData() {
        return actionData;
    }
    public String getContent() {
        return content;
    }
    public boolean isUser() {
        return isUser;
    }

}

下一篇,我們將繼續完成行程管家的前端整合 —— 讓聊天畫面能真正與 MapsActivity 串接,並在互動中呈現出「會回話、會帶路」的真實體驗


上一篇
Day 27 行程管家整合篇:讓行程管家小助手真正開口說話!
下一篇
Day 29行程管家整合篇:前端溝通橋梁誕生,小助手開始對話!(前端2)
系列文
結合AI Agent技術打造自己的行程管家30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言